A NAND flash memory (which will be referred to as a NAND memory) stores information based on charge amounts respectively stored in the floating gates of memory cells. Each of the memory cells has a threshold voltage in accordance with its charge amount. A plurality of data values to be stored in the memory cells are respectively correlated with a plurality of regions of threshold voltage, and electric charges are injected to the memory cells so that their threshold voltages fall within respective regions corresponding to data values to be stored. Then, in reading, the threshold voltages of the memory cells are judged in terms of regions where the threshold voltages are present, to obtain the data values stored in the memory cells.
In the case of a NAND memory of the 3-bit/Cell type that is capable of storing three bits in one memory cell, the number of threshold voltage regions is larger, as compared with a NAND memory of the 1-bit/Cell type that is capable of storing one bit in one memory cell and a NAND memory of the 2-bit/Cell type that is capable of storing two bits in one memory cell. Accordingly, as compared with NAND memories of the 1-bit/Cell type and the 2-bit/Cell type, a NAND memory of the 3-bit/Cell type requires higher adjustment accuracy of threshold voltages and entails larger influence of mutual interference between cells.
In general, NAND memories of the generation with advanced miniaturization in recent years adopt a technique of simultaneously writing (programming) all the bits to be stored in one memory cell, in order to prevent mutual interference between cells.
On the other hand, if mutual interference between cells is not so serious, the bits to be stored in one memory cell may be programmed one by one in order. As a method of programming bits one by one for memory cells of the 3-bit/Cell type, there is known 1-2-4 coding. This method is such coding that seven portions between eight threshold voltage regions of the 3-bit/Cell type are allocated to the three bits respectively by 1, 2, and 4 portions.